Today, electronic communication has wide spread applications that are extremely important in everyday life. One important aspect of communication is reliability in message transfer. Furthermore, it is useful to be able to determine which messages have been lost in the event of a failure in a communication component or a system. Generally speaking, components (e.g., communication devices and links) may not be completely reliable, and thus, failure of one or more components may occur from time to time. Therefore, some conventional communication protocols have been developed to enhance or to improve the reliability of communication.
FIG. 1 illustrates one conventional way to communicate between a message transmitter 101 and a message receiver 102 according to one of the conventional communication protocols. In one example, the message transmitter 101 sends a message 110 to the message receiver 102 over a communication link. Upon successful receipt of the message 110, the message receiver 102 sends an acknowledgement 120 to the message transmitter 101 to acknowledge receipt of the message 110.
When the message transmitter 101 receives the acknowledgement 120, the message transmitter 101 is assured of the successful receipt of the message 110 by the message receiver 102. Therefore, the window between the message transmitter 101 sending the message 110 and the message transmitter 101 receiving the acknowledgement 120 is sometimes referred to as an in-doubt window 115, during which the message 110 may be lost for various reasons (e.g., communication link failure, corruption of the message 110, failure in the message receiver 102, etc.).
Because it is possible that the message 110 may be lost during the in-doubt window 115, the message transmitter 101 periodically sends duplicates of the message 110 to the message receiver 102 during the in-doubt window 115 (i.e., until the message transmitter 101 receives the acknowledgement 120 from the message receiver 102). Thus, it is possible for the message receiver 102 to receive one or more duplicates of the message 110. Further, the message receiver 102 cannot ascertain when the possibility of receiving duplicates of the message 110 will end because there is no mechanism to inform or assure the message receiver 102 that the message transmitter 101 has stopped sending duplicates of the message 110. As such, the window 125 in which the message receiver 102 may receive duplicates of the message 110 begins when the message receiver 102 receives the message 110 and goes on indefinitely. Such uncertainty adversely impacts the reliability of the overall communication between the message transmitter 101 and the message receiver 102. According to some conventional approaches, identifications are added to the message 110 and the acknowledgement 120 to detect duplicates, which are discarded. However, the conventional two-way protocol discussed above, nevertheless, provides only a probabilistic detection scheme, without any guarantee on detection of duplicate messages.